// vite.config.ts
import { URL, fileURLToPath } from "node:url";
import { defineConfig, loadEnv } from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/vite/dist/node/index.js";

// config/plugins/index.ts
import vue from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import vueJsx from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs";

// config/plugins/app-info.ts
import boxen from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/boxen/index.js";
import picocolors from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/picocolors/picocolors.js";
function appInfo() {
  return {
    name: "appInfo",
    apply: "serve",
    async buildStart() {
      const { bold, green, cyan, bgGreen, underline } = picocolors;
      console.log(
        boxen(
          `${bold(green(`${bgGreen("ContiNew Admin v4.0.0-SNAPSHOT")}`))}
${cyan("\u5728\u7EBF\u6587\u6863\uFF1A")}${underline("https://continew.top")}
${cyan("\u5E38\u89C1\u95EE\u9898\uFF1A")}${underline("https://continew.top/admin/faq.html")}
${cyan("\u6301\u7EED\u8FED\u4EE3\u4F18\u5316\u7684\u524D\u540E\u7AEF\u5206\u79BB\u4E2D\u540E\u53F0\u7BA1\u7406\u7CFB\u7EDF\u6846\u67B6\u3002")}`,
          {
            padding: 1,
            margin: 1,
            borderStyle: "double",
            textAlignment: "center"
          }
        )
      );
    }
  };
}

// config/plugins/devtools.ts
import VueDevTools from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/vite-plugin-vue-devtools/dist/vite.mjs";
function createDevtools(env) {
  const { VITE_OPEN_DEVTOOLS } = env;
  return VITE_OPEN_DEVTOOLS === "true" && VueDevTools();
}

// config/plugins/auto-import.ts
import autoImport from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/unplugin-auto-import/dist/vite.js";
function createAutoImport() {
  return autoImport({
    // 自动导入 vue 相关函数
    imports: ["vue", "vue-router", {
      // vue 3.5.x
      vue: ["useTemplateRef", "onWatcherCleanup", "useId"]
    }],
    dts: "./src/types/auto-imports.d.ts"
  });
}

// config/plugins/components.ts
import components from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/unplugin-vue-components/dist/vite.mjs";
function createComponents() {
  return components({
    // 指定组件位置，默认是 src/components 自动导入自定义组件
    dirs: ["src/components"],
    extensions: ["vue", "tsx"],
    // 配置文件生成位置
    dts: "./src/types/components.d.ts"
  });
}

// config/plugins/svg-icon.ts
import path from "node:path";
import process2 from "node:process";
import { createSvgIconsPlugin } from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/vite-plugin-svg-icons/dist/index.mjs";
function createSvgIcon(isBuild) {
  return createSvgIconsPlugin({
    // 指定需要缓存的图标文件夹
    iconDirs: [path.resolve(process2.cwd(), "src/assets/icons")],
    // 指定 symbolId 格式
    symbolId: "icon-[dir]-[name]",
    svgoOptions: isBuild
  });
}

// config/plugins/mock.ts
import { viteMockServe } from "file:///Users/tangyu/Projects/cakerun/cakerun-ui/node_modules/vite-plugin-mock/dist/index.js";
function createMock(env, isBuild) {
  const { VITE_BUILD_MOCK } = env;
  return viteMockServe({
    mockPath: "src/mock",
    // 目录位置
    logger: !isBuild,
    //  是否在控制台显示请求日志
    supportTs: true,
    // 是否读取 ts 文件模块
    localEnabled: true,
    // 设置是否启用本地mock文件
    prodEnabled: isBuild && VITE_BUILD_MOCK === "true",
    // 设置打包是否启用mock功能
    // 这样可以控制关闭mock的时候不让mock打包到最终代码内
    injectCode: `
          import { setupProdMockServer } from '../src/mock/index';
          setupProdMockServer();
        `
  });
}

// config/plugins/index.ts
function createVitePlugins(viteEnv, isBuild = false) {
  const vitePlugins = [appInfo(), vue(), vueJsx()];
  vitePlugins.push(createDevtools(viteEnv));
  vitePlugins.push(createAutoImport());
  vitePlugins.push(createComponents());
  vitePlugins.push(createSvgIcon(isBuild));
  vitePlugins.push(createMock(viteEnv, isBuild));
  return vitePlugins;
}

// vite.config.ts
var __vite_injected_original_import_meta_url = "file:///Users/tangyu/Projects/cakerun/cakerun-ui/vite.config.ts";
var vite_config_default = defineConfig(({ command, mode }) => {
  const env = loadEnv(mode, process.cwd());
  return {
    // 开发或生产环境服务的公共基础路径
    base: env.VITE_BASE,
    // 路径别名
    resolve: {
      alias: {
        "~": fileURLToPath(new URL("./", __vite_injected_original_import_meta_url)),
        "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url))
      }
    },
    // 引入sass全局样式变量
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: `@use "@/styles/var.scss" as *;`,
          api: "modern-compiler"
        }
      }
    },
    // 添加需要vite优化的依赖
    optimizeDeps: {
      include: ["vue-draggable-plus"]
    },
    server: {
      // 服务启动时是否自动打开浏览器
      open: true,
      // 本地跨域代理 -> 代理到服务器的接口地址
      proxy: {
        [env.VITE_API_PREFIX]: {
          target: env.VITE_API_BASE_URL,
          // 后台服务器地址
          changeOrigin: true,
          // 是否允许不同源
          secure: false,
          // 支持https
          rewrite: (path2) => path2.replace(new RegExp(`^${env.VITE_API_PREFIX}`), "")
        }
      }
    },
    plugins: createVitePlugins(env, command === "build"),
    // 构建
    build: {
      chunkSizeWarningLimit: 2e3,
      // 消除打包大小超过500kb警告
      outDir: "dist",
      // 指定打包路径，默认为项目根目录下的dist目录
      minify: "terser",
      // Vite 2.6.x 以上需要配置 minify："terser"，terserOptions才能生效
      terserOptions: {
        compress: {
          keep_infinity: true,
          // 防止 Infinity 被压缩成 1/0，这可能会导致 Chrome 上的性能问题
          drop_console: true,
          // 生产环境去除 console
          drop_debugger: true
          // 生产环境去除 debugger
        },
        format: {
          comments: false
          // 删除注释
        }
      },
      // 静态资源打包到dist下的不同目录
      rollupOptions: {
        output: {
          chunkFileNames: "static/js/[name]-[hash].js",
          entryFileNames: "static/js/[name]-[hash].js",
          assetFileNames: "static/[ext]/[name]-[hash].[ext]"
        }
      }
    },
    // 以 envPrefix 开头的环境变量会通过 import.meta.env 暴露在你的客户端源码中。
    envPrefix: ["VITE", "FILE"]
  };
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiY29uZmlnL3BsdWdpbnMvaW5kZXgudHMiLCAiY29uZmlnL3BsdWdpbnMvYXBwLWluZm8udHMiLCAiY29uZmlnL3BsdWdpbnMvZGV2dG9vbHMudHMiLCAiY29uZmlnL3BsdWdpbnMvYXV0by1pbXBvcnQudHMiLCAiY29uZmlnL3BsdWdpbnMvY29tcG9uZW50cy50cyIsICJjb25maWcvcGx1Z2lucy9zdmctaWNvbi50cyIsICJjb25maWcvcGx1Z2lucy9tb2NrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWlcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL3ZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgVVJMLCBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnXG5pbXBvcnQgeyBkZWZpbmVDb25maWcsIGxvYWRFbnYgfSBmcm9tICd2aXRlJ1xuaW1wb3J0IGNyZWF0ZVZpdGVQbHVnaW5zIGZyb20gJy4vY29uZmlnL3BsdWdpbnMnXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBjb21tYW5kLCBtb2RlIH0pID0+IHtcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKSBhcyBJbXBvcnRNZXRhRW52XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBcdTVGMDBcdTUzRDFcdTYyMTZcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTY3MERcdTUyQTFcdTc2ODRcdTUxNkNcdTUxNzFcdTU3RkFcdTc4NDBcdThERUZcdTVGODRcbiAgICBiYXNlOiBlbnYuVklURV9CQVNFLFxuICAgIC8vIFx1OERFRlx1NUY4NFx1NTIyQlx1NTQwRFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgICd+JzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuLycsIGltcG9ydC5tZXRhLnVybCkpLFxuICAgICAgICAnQCc6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi9zcmMnLCBpbXBvcnQubWV0YS51cmwpKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAvLyBcdTVGMTVcdTUxNjVzYXNzXHU1MTY4XHU1QzQwXHU2ODM3XHU1RjBGXHU1M0Q4XHU5MUNGXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsRGF0YTogYEB1c2UgXCJAL3N0eWxlcy92YXIuc2Nzc1wiIGFzICo7YCxcbiAgICAgICAgICBhcGk6ICdtb2Rlcm4tY29tcGlsZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIC8vIFx1NkRGQlx1NTJBMFx1OTcwMFx1ODk4MXZpdGVcdTRGMThcdTUzMTZcdTc2ODRcdTRGOURcdThENTZcbiAgICBvcHRpbWl6ZURlcHM6IHtcbiAgICAgIGluY2x1ZGU6IFsndnVlLWRyYWdnYWJsZS1wbHVzJ10sXG4gICAgfSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIC8vIFx1NjcwRFx1NTJBMVx1NTQyRlx1NTJBOFx1NjVGNlx1NjYyRlx1NTQyNlx1ODFFQVx1NTJBOFx1NjI1M1x1NUYwMFx1NkQ0Rlx1ODlDOFx1NTY2OFxuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIC8vIFx1NjcyQ1x1NTczMFx1OERFOFx1NTdERlx1NEVFM1x1NzQwNiAtPiBcdTRFRTNcdTc0MDZcdTUyMzBcdTY3MERcdTUyQTFcdTU2NjhcdTc2ODRcdTYzQTVcdTUzRTNcdTU3MzBcdTU3NDBcbiAgICAgIHByb3h5OiB7XG4gICAgICAgIFtlbnYuVklURV9BUElfUFJFRklYXToge1xuICAgICAgICAgIHRhcmdldDogZW52LlZJVEVfQVBJX0JBU0VfVVJMLCAvLyBcdTU0MEVcdTUzRjBcdTY3MERcdTUyQTFcdTU2NjhcdTU3MzBcdTU3NDBcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsIC8vIFx1NjYyRlx1NTQyNlx1NTE0MVx1OEJCOFx1NEUwRFx1NTQwQ1x1NkU5MFxuICAgICAgICAgIHNlY3VyZTogZmFsc2UsIC8vIFx1NjUyRlx1NjMwMWh0dHBzXG4gICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtlbnYuVklURV9BUElfUFJFRklYfWApLCAnJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcGx1Z2luczogY3JlYXRlVml0ZVBsdWdpbnMoZW52LCBjb21tYW5kID09PSAnYnVpbGQnKSxcbiAgICAvLyBcdTY3ODRcdTVFRkFcbiAgICBidWlsZDoge1xuICAgICAgY2h1bmtTaXplV2FybmluZ0xpbWl0OiAyMDAwLCAvLyBcdTZEODhcdTk2NjRcdTYyNTNcdTUzMDVcdTU5MjdcdTVDMEZcdThEODVcdThGQzc1MDBrYlx1OEI2Nlx1NTQ0QVxuICAgICAgb3V0RGlyOiAnZGlzdCcsIC8vIFx1NjMwN1x1NUI5QVx1NjI1M1x1NTMwNVx1OERFRlx1NUY4NFx1RkYwQ1x1OUVEOFx1OEJBNFx1NEUzQVx1OTg3OVx1NzZFRVx1NjgzOVx1NzZFRVx1NUY1NVx1NEUwQlx1NzY4NGRpc3RcdTc2RUVcdTVGNTVcbiAgICAgIG1pbmlmeTogJ3RlcnNlcicsIC8vIFZpdGUgMi42LnggXHU0RUU1XHU0RTBBXHU5NzAwXHU4OTgxXHU5MTREXHU3RjZFIG1pbmlmeVx1RkYxQVwidGVyc2VyXCJcdUZGMEN0ZXJzZXJPcHRpb25zXHU2MjREXHU4MEZEXHU3NTFGXHU2NTQ4XG4gICAgICB0ZXJzZXJPcHRpb25zOiB7XG4gICAgICAgIGNvbXByZXNzOiB7XG4gICAgICAgICAga2VlcF9pbmZpbml0eTogdHJ1ZSwgLy8gXHU5NjMyXHU2QjYyIEluZmluaXR5IFx1ODhBQlx1NTM4Qlx1N0YyOVx1NjIxMCAxLzBcdUZGMENcdThGRDlcdTUzRUZcdTgwRkRcdTRGMUFcdTVCRkNcdTgxRjQgQ2hyb21lIFx1NEUwQVx1NzY4NFx1NjAyN1x1ODBGRFx1OTVFRVx1OTg5OFxuICAgICAgICAgIGRyb3BfY29uc29sZTogdHJ1ZSwgLy8gXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHU1M0JCXHU5NjY0IGNvbnNvbGVcbiAgICAgICAgICBkcm9wX2RlYnVnZ2VyOiB0cnVlLCAvLyBcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTUzQkJcdTk2NjQgZGVidWdnZXJcbiAgICAgICAgfSxcbiAgICAgICAgZm9ybWF0OiB7XG4gICAgICAgICAgY29tbWVudHM6IGZhbHNlLCAvLyBcdTUyMjBcdTk2NjRcdTZDRThcdTkxQ0FcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBcdTk3NTlcdTYwMDFcdThENDRcdTZFOTBcdTYyNTNcdTUzMDVcdTUyMzBkaXN0XHU0RTBCXHU3Njg0XHU0RTBEXHU1NDBDXHU3NkVFXHU1RjU1XG4gICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgIG91dHB1dDoge1xuICAgICAgICAgIGNodW5rRmlsZU5hbWVzOiAnc3RhdGljL2pzL1tuYW1lXS1baGFzaF0uanMnLFxuICAgICAgICAgIGVudHJ5RmlsZU5hbWVzOiAnc3RhdGljL2pzL1tuYW1lXS1baGFzaF0uanMnLFxuICAgICAgICAgIGFzc2V0RmlsZU5hbWVzOiAnc3RhdGljL1tleHRdL1tuYW1lXS1baGFzaF0uW2V4dF0nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIC8vIFx1NEVFNSBlbnZQcmVmaXggXHU1RjAwXHU1OTM0XHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGXHU0RjFBXHU5MDFBXHU4RkM3IGltcG9ydC5tZXRhLmVudiBcdTY2QjRcdTk3MzJcdTU3MjhcdTRGNjBcdTc2ODRcdTVCQTJcdTYyMzdcdTdBRUZcdTZFOTBcdTc4MDFcdTRFMkRcdTMwMDJcbiAgICBlbnZQcmVmaXg6IFsnVklURScsICdGSUxFJ10sXG4gIH1cbn0pXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9pbmRleC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9pbmRleC50c1wiO2ltcG9ydCB0eXBlIHsgUGx1Z2luT3B0aW9uIH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xuXG5pbXBvcnQgYXBwSW5mbyBmcm9tICcuL2FwcC1pbmZvJ1xuaW1wb3J0IGNyZWF0ZURldnRvb2xzIGZyb20gJy4vZGV2dG9vbHMnXG5pbXBvcnQgY3JlYXRlQXV0b0ltcG9ydCBmcm9tICcuL2F1dG8taW1wb3J0J1xuaW1wb3J0IGNyZWF0ZUNvbXBvbmVudHMgZnJvbSAnLi9jb21wb25lbnRzJ1xuaW1wb3J0IGNyZWF0ZVN2Z0ljb24gZnJvbSAnLi9zdmctaWNvbidcbmltcG9ydCBjcmVhdGVNb2NrIGZyb20gJy4vbW9jaydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVml0ZVBsdWdpbnModml0ZUVudiwgaXNCdWlsZCA9IGZhbHNlKSB7XG4gIGNvbnN0IHZpdGVQbHVnaW5zOiAoUGx1Z2luT3B0aW9uIHwgUGx1Z2luT3B0aW9uW10pW10gPSBbYXBwSW5mbygpLCB2dWUoKSwgdnVlSnN4KCldXG4gIHZpdGVQbHVnaW5zLnB1c2goY3JlYXRlRGV2dG9vbHModml0ZUVudikpXG4gIHZpdGVQbHVnaW5zLnB1c2goY3JlYXRlQXV0b0ltcG9ydCgpKVxuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZUNvbXBvbmVudHMoKSlcbiAgdml0ZVBsdWdpbnMucHVzaChjcmVhdGVTdmdJY29uKGlzQnVpbGQpKVxuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZU1vY2sodml0ZUVudiwgaXNCdWlsZCkpXG4gIHJldHVybiB2aXRlUGx1Z2luc1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnMvYXBwLWluZm8udHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnMvYXBwLWluZm8udHNcIjtpbXBvcnQgYm94ZW4gZnJvbSAnYm94ZW4nXG5pbXBvcnQgcGljb2NvbG9ycyBmcm9tICdwaWNvY29sb3JzJ1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICd2aXRlJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBJbmZvKCk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2FwcEluZm8nLFxuICAgIGFwcGx5OiAnc2VydmUnLFxuICAgIGFzeW5jIGJ1aWxkU3RhcnQoKSB7XG4gICAgICBjb25zdCB7IGJvbGQsIGdyZWVuLCBjeWFuLCBiZ0dyZWVuLCB1bmRlcmxpbmUgfSA9IHBpY29jb2xvcnNcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYm94ZW4oXG4gICAgICAgICAgYCR7Ym9sZChncmVlbihgJHtiZ0dyZWVuKCdDb250aU5ldyBBZG1pbiB2NC4wLjAtU05BUFNIT1QnKX1gKSl9XFxuJHtjeWFuKCdcdTU3MjhcdTdFQkZcdTY1ODdcdTY4NjNcdUZGMUEnKX0ke3VuZGVybGluZSgnaHR0cHM6Ly9jb250aW5ldy50b3AnKX1cXG4ke2N5YW4oJ1x1NUUzOFx1ODlDMVx1OTVFRVx1OTg5OFx1RkYxQScpfSR7dW5kZXJsaW5lKCdodHRwczovL2NvbnRpbmV3LnRvcC9hZG1pbi9mYXEuaHRtbCcpfVxcbiR7Y3lhbignXHU2MzAxXHU3RUVEXHU4RkVEXHU0RUUzXHU0RjE4XHU1MzE2XHU3Njg0XHU1MjREXHU1NDBFXHU3QUVGXHU1MjA2XHU3OUJCXHU0RTJEXHU1NDBFXHU1M0YwXHU3QkExXHU3NDA2XHU3Q0ZCXHU3RURGXHU2ODQ2XHU2N0I2XHUzMDAyJyl9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLFxuICAgICAgICAgICAgbWFyZ2luOiAxLFxuICAgICAgICAgICAgYm9yZGVyU3R5bGU6ICdkb3VibGUnLFxuICAgICAgICAgICAgdGV4dEFsaWdubWVudDogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICB9LFxuICB9XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9kZXZ0b29scy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9kZXZ0b29scy50c1wiO2ltcG9ydCBWdWVEZXZUb29scyBmcm9tICd2aXRlLXBsdWdpbi12dWUtZGV2dG9vbHMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURldnRvb2xzKGVudikge1xuICBjb25zdCB7IFZJVEVfT1BFTl9ERVZUT09MUyB9ID0gZW52XG4gIHJldHVybiBWSVRFX09QRU5fREVWVE9PTFMgPT09ICd0cnVlJyAmJiBWdWVEZXZUb29scygpXG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9hdXRvLWltcG9ydC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9hdXRvLWltcG9ydC50c1wiO2ltcG9ydCBhdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUF1dG9JbXBvcnQoKSB7XG4gIHJldHVybiBhdXRvSW1wb3J0KHtcbiAgICAvLyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjUgdnVlIFx1NzZGOFx1NTE3M1x1NTFGRFx1NjU3MFxuICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS1yb3V0ZXInLCB7XG4gICAgICAvLyB2dWUgMy41LnhcbiAgICAgIHZ1ZTogWyd1c2VUZW1wbGF0ZVJlZicsICdvbldhdGNoZXJDbGVhbnVwJywgJ3VzZUlkJ10sXG4gICAgfV0sXG4gICAgZHRzOiAnLi9zcmMvdHlwZXMvYXV0by1pbXBvcnRzLmQudHMnLFxuICB9KVxufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnMvY29tcG9uZW50cy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvdGFuZ3l1L1Byb2plY3RzL2Nha2VydW4vY2FrZXJ1bi11aS9jb25maWcvcGx1Z2lucy9jb21wb25lbnRzLnRzXCI7aW1wb3J0IGNvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50cygpIHtcbiAgcmV0dXJuIGNvbXBvbmVudHMoe1xuICAgIC8vIFx1NjMwN1x1NUI5QVx1N0VDNFx1NEVGNlx1NEY0RFx1N0Y2RVx1RkYwQ1x1OUVEOFx1OEJBNFx1NjYyRiBzcmMvY29tcG9uZW50cyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjVcdTgxRUFcdTVCOUFcdTRFNDlcdTdFQzRcdTRFRjZcbiAgICBkaXJzOiBbJ3NyYy9jb21wb25lbnRzJ10sXG4gICAgZXh0ZW5zaW9uczogWyd2dWUnLCAndHN4J10sXG4gICAgLy8gXHU5MTREXHU3RjZFXHU2NTg3XHU0RUY2XHU3NTFGXHU2MjEwXHU0RjREXHU3RjZFXG4gICAgZHRzOiAnLi9zcmMvdHlwZXMvY29tcG9uZW50cy5kLnRzJyxcbiAgfSlcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zL3N2Zy1pY29uLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zL3N2Zy1pY29uLnRzXCI7aW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJ1xuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVN2Z0ljb24oaXNCdWlsZCkge1xuICByZXR1cm4gY3JlYXRlU3ZnSWNvbnNQbHVnaW4oe1xuICAgIC8vIFx1NjMwN1x1NUI5QVx1OTcwMFx1ODk4MVx1N0YxM1x1NUI1OFx1NzY4NFx1NTZGRVx1NjgwN1x1NjU4N1x1NEVGNlx1NTkzOVxuICAgIGljb25EaXJzOiBbcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksICdzcmMvYXNzZXRzL2ljb25zJyldLFxuICAgIC8vIFx1NjMwN1x1NUI5QSBzeW1ib2xJZCBcdTY4M0NcdTVGMEZcbiAgICBzeW1ib2xJZDogJ2ljb24tW2Rpcl0tW25hbWVdJyxcbiAgICBzdmdvT3B0aW9uczogaXNCdWlsZCxcbiAgfSlcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy90YW5neXUvUHJvamVjdHMvY2FrZXJ1bi9jYWtlcnVuLXVpL2NvbmZpZy9wbHVnaW5zL21vY2sudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3Rhbmd5dS9Qcm9qZWN0cy9jYWtlcnVuL2Nha2VydW4tdWkvY29uZmlnL3BsdWdpbnMvbW9jay50c1wiO2ltcG9ydCB7IHZpdGVNb2NrU2VydmUgfSBmcm9tICd2aXRlLXBsdWdpbi1tb2NrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVNb2NrKGVudiwgaXNCdWlsZCkge1xuICBjb25zdCB7IFZJVEVfQlVJTERfTU9DSyB9ID0gZW52XG4gIHJldHVybiB2aXRlTW9ja1NlcnZlKHtcbiAgICBtb2NrUGF0aDogJ3NyYy9tb2NrJywgLy8gXHU3NkVFXHU1RjU1XHU0RjREXHU3RjZFXG4gICAgbG9nZ2VyOiAhaXNCdWlsZCwgLy8gIFx1NjYyRlx1NTQyNlx1NTcyOFx1NjNBN1x1NTIzNlx1NTNGMFx1NjYzRVx1NzkzQVx1OEJGN1x1NkM0Mlx1NjVFNVx1NUZEN1xuICAgIHN1cHBvcnRUczogdHJ1ZSwgLy8gXHU2NjJGXHU1NDI2XHU4QkZCXHU1M0Q2IHRzIFx1NjU4N1x1NEVGNlx1NkEyMVx1NTc1N1xuICAgIGxvY2FsRW5hYmxlZDogdHJ1ZSwgLy8gXHU4QkJFXHU3RjZFXHU2NjJGXHU1NDI2XHU1NDJGXHU3NTI4XHU2NzJDXHU1NzMwbW9ja1x1NjU4N1x1NEVGNlxuICAgIHByb2RFbmFibGVkOiBpc0J1aWxkICYmIFZJVEVfQlVJTERfTU9DSyA9PT0gJ3RydWUnLCAvLyBcdThCQkVcdTdGNkVcdTYyNTNcdTUzMDVcdTY2MkZcdTU0MjZcdTU0MkZcdTc1Mjhtb2NrXHU1MjlGXHU4MEZEXG4gICAgLy8gXHU4RkQ5XHU2ODM3XHU1M0VGXHU0RUU1XHU2M0E3XHU1MjM2XHU1MTczXHU5NUVEbW9ja1x1NzY4NFx1NjVGNlx1NTAxOVx1NEUwRFx1OEJBOW1vY2tcdTYyNTNcdTUzMDVcdTUyMzBcdTY3MDBcdTdFQzhcdTRFRTNcdTc4MDFcdTUxODVcbiAgICBpbmplY3RDb2RlOiBgXG4gICAgICAgICAgaW1wb3J0IHsgc2V0dXBQcm9kTW9ja1NlcnZlciB9IGZyb20gJy4uL3NyYy9tb2NrL2luZGV4JztcbiAgICAgICAgICBzZXR1cFByb2RNb2NrU2VydmVyKCk7XG4gICAgICAgIGAsXG4gIH0pXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQTZTLFNBQVMsS0FBSyxxQkFBcUI7QUFDaFYsU0FBUyxjQUFjLGVBQWU7OztBQ0F0QyxPQUFPLFNBQVM7QUFDaEIsT0FBTyxZQUFZOzs7QUNGaVUsT0FBTyxXQUFXO0FBQ3RXLE9BQU8sZ0JBQWdCO0FBR1IsU0FBUixVQUFtQztBQUN4QyxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNLGFBQWE7QUFDakIsWUFBTSxFQUFFLE1BQU0sT0FBTyxNQUFNLFNBQVMsVUFBVSxJQUFJO0FBRWxELGNBQVE7QUFBQSxRQUNOO0FBQUEsVUFDRSxHQUFHLEtBQUssTUFBTSxHQUFHLFFBQVEsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxFQUFLLEtBQUssZ0NBQU8sQ0FBQyxHQUFHLFVBQVUsc0JBQXNCLENBQUM7QUFBQSxFQUFLLEtBQUssZ0NBQU8sQ0FBQyxHQUFHLFVBQVUscUNBQXFDLENBQUM7QUFBQSxFQUFLLEtBQUssc0lBQXdCLENBQUM7QUFBQSxVQUM1TjtBQUFBLFlBQ0UsU0FBUztBQUFBLFlBQ1QsUUFB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
